/*
*******************************************************************************************************?
**??Copyright?(C)?2019,?苏州检易生物科技有限公司?
**??All?rights?reserved.?
**?
**??FileName:?????  	can.h
**??Description:	
**??Author:????????	?
**  Version				v0.1
**??Date:???????    	2019-05-30
**	Function List：?
**??History:?????????
*********************************************************************************************************
*/
/*
*********************************************************************************************************
*                                              	防止重复包含
*********************************************************************************************************
*/

#ifndef _BSP_CAN_H_
#define _BSP_CAN_H_
/*
*********************************************************************************************************
*                                              	调试开关
*********************************************************************************************************
*/



/*
*********************************************************************************************************
*                                              	头文件
*********************************************************************************************************
*/
#include "stm32f10x.h"
#include "stm32f10x_conf.h" 
#include "system_stm32f10x.h"

/*
*********************************************************************************************************
*                                              	宏定义
*********************************************************************************************************
*/
#define CLOSE_LOOP_CAN_ID_BASE	0x0030
/*
*********************************************************************************************************
*                                              枚举和结构体类型定义
*********************************************************************************************************
*/
typedef struct
{
	uint16_t NodeID;  // 节点 ID
	void(*CanRx0_Handle)(uint16_t ID,uint8_t *Dat,uint8_t Len);  // CAN FIFO0 中断回调函数
	void(*CanRx1_Handle)(uint16_t ID,uint8_t *Dat,uint8_t Len);  // CAN FIFO1 中断回调函数
}TypeDefBspCanStruct;
 
/*
*********************************************************************************************************
*                                              	全局变量声明
*********************************************************************************************************
*/

/*
*********************************************************************************************************
*                                              	函数声明
*********************************************************************************************************
*/
uint8_t BspDeviceID_ReadID(void);
uint8_t BspCan1_Init(TypeDefBspCanStruct *CAN_p);
uint8_t CanMailBoxCheck(CAN_TypeDef* CANx);
uint8_t Can1SendData(uint16_t StdId,uint8_t *Buff,uint8_t Len);
#endif
